import pandas as pd

student = {
    "姓名": ['张三', '李四', '王五', '赵六', '钱七'],
    "性别": ['男', '男', '女', '女', '男'],
    "年龄": [18, 19, 20, 21, 22],
    "成绩": [90, 85, 95, 88, 92]
}

df = pd.DataFrame(student)

# 1. 选取单行数据
# 选取第二行数据（索引为1）
print("选取第二行数据：")
print(df.loc[1])

# 2. 选取多行数据
# 选取第二行到第四行数据（索引为1到3）
print("\n选取第二行到第四行数据：")
print(df.loc[1:3])

# 3. 选取单列数据
# 选取姓名列的数据
print("\n选取姓名列的数据：")
print(df.loc[:, '姓名'])

# 4. 选取多列数据
# 选取姓名和成绩列的数据
print("\n选取姓名和成绩列的数据：")
print(df.loc[:, ['姓名', '成绩']])

# 5. 选取特定行和列的数据
# 选取第二行到第四行的姓名和成绩列的数据
print("\n选取第二行到第四行的姓名和成绩列的数据：")
print(df.loc[1:3, ['姓名', '成绩']])

# 6. 使用布尔索引选取数据
# 选取年龄大于20的学生的姓名和年龄
print("\n选取年龄大于20的学生的姓名和年龄：")
print(df.loc[df['年龄'] > 20, ['姓名', '年龄']])

# 7. 使用条件组合选取数据
# 选取年龄大于20且成绩大于90的学生的所有信息
print("\n选取年龄大于20且成绩大于90的学生的所有信息：")
print(df.loc[(df['年龄'] > 20) & (df['成绩'] > 90), :])

# 8. 使用函数进行筛选
# 定义一个函数，用于筛选性别为女的学生
def filter_female(row):
    return row['性别'] == '女'

print("\n使用函数筛选性别为女的学生的所有信息：")
print(df.loc[df.apply(filter_female, axis=1), :])
